package com.eshop.dao.provider;


import com.eshop.pojo.UserInfo;
import org.apache.ibatis.jdbc.SQL;

import java.util.Map;

public class UserInfoDynaSqlProvider {
    public String selectByPage(Map<String ,Object> param){ //分页获取客户信息
        String sql = new SQL(){
            {
                SELECT("*");
                FROM("user_info");
                if(param.get("userInfo") != null){
                    UserInfo userInfo = (UserInfo) param.get("userInfo");
                    if (userInfo.getUserName() != null && !userInfo.getUserName().equals("")){
                        WHERE("userName LIKE CONCAT('%',#{userInfo.userName},'%') or realName LIKE CONCAT('%',#{userInfo.userName},'%')");
                    }
                }
            }
        }.toString();
        if (param.get("pager") != null){
            sql += " limit #{pager.firstLimitParam} , #{pager.perPageRows}";//limit子句用于限制查询结果返回的数量 （第几页，多少条数据）
        }                       //get?? 自动调用参数的get方法？
        //System.out.println(sql);//调试
        return sql;
    }

    public String count(Map<String ,Object> param){ //根据条件查询客户总数
        return new SQL(){
            {
                SELECT("count(*)");
                FROM("user_info");
                if (param.get("userInfo") != null){
                    UserInfo userInfo = (UserInfo) param.get("userInfo");
                    if (userInfo.getUserName() != null && !userInfo.getUserName().equals("")){
                        WHERE("userName LIKE CONCAT('%',#{userInfo.userName},'%') or realName LIKE CONCAT('%',#{userInfo.userName},'%')");
                    }
                }
            }
        }.toString();
    }
}
